#include <cmath>
#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>
#include <map>
#include <set>
#include <cstring>
#define endl "\n"
using namespace std;
const int N=30;
int n,m,k=0;
char ch[N][N];
int sh[N][N]={0};
int fangxiang[4][2]={{0,1},{1,0},{-1,0},{0,-1}};
bool panduan(int x,int y)
 {
 	if(x>=m||x<0||y>=n||y<0)//
 	return false;
 	if(ch[x][y]=='#'||sh[x][y]==1)//
 	return false;
 	return true;
 }
 void dfs(int x,int y)
 {
 	k++;
 	sh[x][y]=1;
 	for(int i=0;i<4;i++)
      {

        int MX=x+fangxiang[i][0];
        int MY=y+fangxiang[i][1];
        if(panduan(MX,MY))
            dfs(MX,MY);//###############
    }
 }
int main()
{
    int mx,my;
    cin>>n>>m;
    for(int i=0;i<m;i++)
    {

        for(int j=0;j<n;j++)
            {

                cin>>ch[i][j];
                if(ch[i][j]=='@')
                {
                    mx=i;my=j;
                }
            }
    }
    dfs(mx,my);
    cout<<k<<endl;
    return 0;
}




